﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Регл)
	///</summary>
	[DataContract]
	public enum ПричиныОтсутствияНаРаботеВОрганизации
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"5c6f61b3-319e-47ca-890b-691aec414a77\", \"Представление\":\"Заболевание\"}")]
		Заболевание = 0,
		[EnumMember(Value = "{\"Ссылка\":\"eb3a9a7c-38be-49e7-92f0-656033c5b01d\", \"Представление\":\"Командировка\"}")]
		Командировка = 1,
		[EnumMember(Value = "{\"Ссылка\":\"0114a3cc-e8d6-4c76-928f-28fe4a201cb1\", \"Представление\":\"ОтпускЕжегодный\"}")]
		ОтпускЕжегодный = 2,//Отпуск ежегодный
		[EnumMember(Value = "{\"Ссылка\":\"c09b2ea6-7862-4bfb-a5b0-05fe2d831fce\", \"Представление\":\"ОтпускУчебный\"}")]
		ОтпускУчебный = 3,//Отпуск учебный
		[EnumMember(Value = "{\"Ссылка\":\"574ee665-5dbe-4e1d-9788-ac25f88341ed\", \"Представление\":\"ОтпускУчебныйНеоплачиваемый\"}")]
		ОтпускУчебныйНеоплачиваемый = 4,//Отпуск учебный неоплачиваемый
		[EnumMember(Value = "{\"Ссылка\":\"97b4f194-d68e-4529-89e7-72b89cb8702c\", \"Представление\":\"ОтпускБезСохраненияЗарплаты\"}")]
		ОтпускБезСохраненияЗарплаты = 5,//Отпуск без сохранения заработной платы
		[EnumMember(Value = "{\"Ссылка\":\"c1fd73d6-e290-4909-9d84-fbc829807dab\", \"Представление\":\"ОтпускПоУходуЗаРебенком\"}")]
		ОтпускПоУходуЗаРебенком = 6,//Отпуск по уходу за ребенком
		[EnumMember(Value = "{\"Ссылка\":\"48dbc680-7a29-4e1d-baf9-ff5e2694a7c4\", \"Представление\":\"ОтсутствуетПоНевыясненнойПричине\"}")]
		ОтсутствуетПоНевыясненнойПричине = 7,//Отсутствует по невыясненной причине
	}
	public static partial class ПричиныОтсутствияНаРаботеВОрганизации_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Заболевание = new Guid("1a690b89-41ec-774a-47ca-319e5c6f61b3");
		public static readonly Guid Командировка = new Guid("6065f092-c533-1db0-49e7-38beeb3a9a7c");
		public static readonly Guid ОтпускЕжегодный = new Guid("fe288f92-204a-b11c-4c76-e8d60114a3cc");//Отпуск ежегодный
		public static readonly Guid ОтпускУчебный = new Guid("fe05b0a5-832d-ce1f-4bfb-7862c09b2ea6");//Отпуск учебный
		public static readonly Guid ОтпускУчебныйНеоплачиваемый = new Guid("25ac8897-83f8-ed41-4e1d-5dbe574ee665");//Отпуск учебный неоплачиваемый
		public static readonly Guid ОтпускБезСохраненияЗарплаты = new Guid("b872e789-b89c-2c70-4529-d68e97b4f194");//Отпуск без сохранения заработной платы
		public static readonly Guid ОтпускПоУходуЗаРебенком = new Guid("c8fb849d-8029-ab7d-4909-e290c1fd73d6");//Отпуск по уходу за ребенком
		public static readonly Guid ОтсутствуетПоНевыясненнойПричине = new Guid("5efff9ba-9426-c4a7-4e1d-7a2948dbc680");//Отсутствует по невыясненной причине
		public static ПричиныОтсутствияНаРаботеВОрганизации Получить(this ПричиныОтсутствияНаРаботеВОрганизации Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ПричиныОтсутствияНаРаботеВОрганизации Получить(this ПричиныОтсутствияНаРаботеВОрганизации Значение, Guid Ссылка)
		{
			if(Ссылка == Заболевание)
			{
				return ПричиныОтсутствияНаРаботеВОрганизации.Заболевание;
			}
			else if(Ссылка == Командировка)
			{
				return ПричиныОтсутствияНаРаботеВОрганизации.Командировка;
			}
			else if(Ссылка == ОтпускЕжегодный)
			{
				return ПричиныОтсутствияНаРаботеВОрганизации.ОтпускЕжегодный;
			}
			else if(Ссылка == ОтпускУчебный)
			{
				return ПричиныОтсутствияНаРаботеВОрганизации.ОтпускУчебный;
			}
			else if(Ссылка == ОтпускУчебныйНеоплачиваемый)
			{
				return ПричиныОтсутствияНаРаботеВОрганизации.ОтпускУчебныйНеоплачиваемый;
			}
			else if(Ссылка == ОтпускБезСохраненияЗарплаты)
			{
				return ПричиныОтсутствияНаРаботеВОрганизации.ОтпускБезСохраненияЗарплаты;
			}
			else if(Ссылка == ОтпускПоУходуЗаРебенком)
			{
				return ПричиныОтсутствияНаРаботеВОрганизации.ОтпускПоУходуЗаРебенком;
			}
			else if(Ссылка == ОтсутствуетПоНевыясненнойПричине)
			{
				return ПричиныОтсутствияНаРаботеВОрганизации.ОтсутствуетПоНевыясненнойПричине;
			}
			return ПричиныОтсутствияНаРаботеВОрганизации.ПустаяСсылка;
		}
		public static byte[] Ключ(this ПричиныОтсутствияНаРаботеВОрганизации Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ПричиныОтсутствияНаРаботеВОрганизации Значение)
		{
			switch (Значение)
			{
				case ПричиныОтсутствияНаРаботеВОрганизации.Заболевание: return Заболевание;
				case ПричиныОтсутствияНаРаботеВОрганизации.Командировка: return Командировка;
				case ПричиныОтсутствияНаРаботеВОрганизации.ОтпускЕжегодный: return ОтпускЕжегодный;
				case ПричиныОтсутствияНаРаботеВОрганизации.ОтпускУчебный: return ОтпускУчебный;
				case ПричиныОтсутствияНаРаботеВОрганизации.ОтпускУчебныйНеоплачиваемый: return ОтпускУчебныйНеоплачиваемый;
				case ПричиныОтсутствияНаРаботеВОрганизации.ОтпускБезСохраненияЗарплаты: return ОтпускБезСохраненияЗарплаты;
				case ПричиныОтсутствияНаРаботеВОрганизации.ОтпускПоУходуЗаРебенком: return ОтпускПоУходуЗаРебенком;
				case ПричиныОтсутствияНаРаботеВОрганизации.ОтсутствуетПоНевыясненнойПричине: return ОтсутствуетПоНевыясненнойПричине;
			}
			return Guid.Empty;
		}
	}
}